home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d7
/
commo51.arc
/
MACRO.DOC
< prev
next >
Wrap
Text File
|
1991-12-22
|
120KB
|
3,424 lines
____________
{COMMO} (tm)
____________
"A New Standard in Telecommunications"
by
Fred P. Brucker
Post Office Box 9103
Santa Rosa, CA 95405
Macro Programming Guide
Release 5.1
December 21, 1991
This program and associated documentation are the property of the
author and may not be sold without permission. They may be freely
distributed, unaltered and as a unit, via electronic bulletin board
systems. Permission to distribute on diskette or in any other
manner must be obtained in writing. See the file LICENSES for
additional licensing and distribution details.
The author does not guarantee this program to be free from defects
and may not be held responsible for loss caused by such. Your use
of this program constitutes your acceptance of these terms.
(C)Copyright 1989,1991 Fred P. Brucker All Rights Reserved
========================
Registration Information
========================
{COMMO} is a "SHAREWARE" product. You are entitled to evaluate it
for 30 days. If it suits your needs and you would like to continue
using it, then you must pay the licensing fee. Please use the order
form in the file REGISTER.FRM (or the one below).
Send to: Fred P. Brucker
Post Office Box 9103
Santa Rosa, CA 95405
When you REGISTER you will be licensed to use all future releases of
{COMMO}. You will never have to pay an "update" charge. You will
also receive instructions for removing the Shareware Notice at
program startup.
My (voice) TELEPHONE NUMBER for inquiries and support for registered
users is (707) 573-1065. Please restrict calls to business hours
(Mon-Fri, 9am-5pm, Pacific time).
Registered users will also receive priority support on Bulletin
Boards, CompuServe and GEnie (see READ.ME).
Call or write for pricing information on MULTI-USER (site) licenses.
Discounts are given on quantities greater than 10.
See the file LICENSES for licensing and distribution details.
{COMMO} 5.1 SINGLE USER REGISTRATION FORM
Name ___________________________________________________________
Company name (if company address) ________________________________
Address ___________________________________________________________
___________________________________________________________
___________________________________________________________
====================================================================
All prices shown are US DOLLARS.
Please remit US funds on US bank only.
NET 30 TERMS will be accepted on orders totalling $100.00 or more.
Payment accepted as check or money order,
payable to FRED P. BRUCKER.
SORRY, I am unable to accept credit cards at this time.
====================================================================
{COMMO} single user license, SPECIAL PACKAGE ... $50.00 $ ________
Includes: (1) Printed, bound, indexed manual.
(2) Latest release on diskette plus utilities
(COMMOPNS, MOSTHOST, CMC, etc., see READ.ME).
Choose format: 5.25" ____ 3.5" ____
Current release ____ or next ____
{COMMO} single user LICENSE only ................ $35.00 $ ________
You may also order a diskette.
Registered users may order PRINTED MANUAL only .. $20.00 $ ________
Limit of one per license. Your serial no. _________
Registered users may order DISKETTE only ........ $5.00 $ ________
Limit of one per license. Your serial no. _________
Choose format: 5.25" ____ 3.5" ____
Current release ____ or next ____
Subtotal $ ________
California residents add sales tax, 7.5% $ ________
(No tax when ordering license alone)
Special Package or Manual order, add SHIPPING:
USA/Canada/Mexico ........ $3.00
All other countries ...... $10.00 $ ________
Total $ ________
Thank you, and I hope you enjoy {COMMO}.
{COMMO} (tm) Macro Programming Guide page ii
========
Contents
========
Programming {COMMO} Macros . . . . . . . . . . . . . . . . . 1
Macro Structure . . . . . . . . . . . . . . . . . . . . 1
Macro Functions . . . . . . . . . . . . . . . . . . . . 2
Macro Labels . . . . . . . . . . . . . . . . . . . . . . 4
Macro Variables . . . . . . . . . . . . . . . . . . . . 4
How to Use Variables . . . . . . . . . . . . . . . . . . 5
Reserved Variables . . . . . . . . . . . . . . . . . . . 6
Executing Macros . . . . . . . . . . . . . . . . . . . . 8
Additional Macro Execution Rules . . . . . . . . . . . . 8
Cancelling a Macro . . . . . . . . . . . . . . . . . . . 9
Description of Functions (Alphabetical) . . . . . . . . . . . 9
ABAUd . . . . . . . . . . . . . . . . . . . . . . . . . 10
ALARm . . . . . . . . . . . . . . . . . . . . . . . . . 10
ASCIiup . . . . . . . . . . . . . . . . . . . . . . . . 10
AUTO . . . . . . . . . . . . . . . . . . . . . . . . . . 11
BEEP . . . . . . . . . . . . . . . . . . . . . . . . . . 12
BREAk . . . . . . . . . . . . . . . . . . . . . . . . . 12
CALL . . . . . . . . . . . . . . . . . . . . . . . . . . 12
CAPMode . . . . . . . . . . . . . . . . . . . . . . . . 13
CAPTure . . . . . . . . . . . . . . . . . . . . . . . . 13
CHATmode . . . . . . . . . . . . . . . . . . . . . . . . 13
CLEAr . . . . . . . . . . . . . . . . . . . . . . . . . 14
COMPare . . . . . . . . . . . . . . . . . . . . . . . . 14
CURSor . . . . . . . . . . . . . . . . . . . . . . . . . 15
DECRement . . . . . . . . . . . . . . . . . . . . . . . 15
DIAL . . . . . . . . . . . . . . . . . . . . . . . . . . 15
DISPlay . . . . . . . . . . . . . . . . . . . . . . . . 17
DOORway . . . . . . . . . . . . . . . . . . . . . . . . 18
DPARms . . . . . . . . . . . . . . . . . . . . . . . . . 18
EDIT . . . . . . . . . . . . . . . . . . . . . . . . . . 19
ELAPse . . . . . . . . . . . . . . . . . . . . . . . . . 19
EXECute . . . . . . . . . . . . . . . . . . . . . . . . 19
Using the Direct Switch: exec-D . . . . . . . . . . 21
EXECute Preview Mode . . . . . . . . . . . . . . . 22
EXIT . . . . . . . . . . . . . . . . . . . . . . . . . . 22
GETString . . . . . . . . . . . . . . . . . . . . . . . 23
GOLOok . . . . . . . . . . . . . . . . . . . . . . . . . 24
GOTO . . . . . . . . . . . . . . . . . . . . . . . . . . 25
HANGup . . . . . . . . . . . . . . . . . . . . . . . . . 25
HELP . . . . . . . . . . . . . . . . . . . . . . . . . . 26
HFLOw . . . . . . . . . . . . . . . . . . . . . . . . . 26
HOLD . . . . . . . . . . . . . . . . . . . . . . . . . . 26
IFCArrier . . . . . . . . . . . . . . . . . . . . . . . 26
IFCOndition . . . . . . . . . . . . . . . . . . . . . . 27
IFERrorlevel . . . . . . . . . . . . . . . . . . . . . . 28
IFEXist . . . . . . . . . . . . . . . . . . . . . . . . 29
{COMMO} (tm) Macro Programming Guide page iii
INCRement . . . . . . . . . . . . . . . . . . . . . . . 30
INITmodem . . . . . . . . . . . . . . . . . . . . . . . 30
INPUt . . . . . . . . . . . . . . . . . . . . . . . . . 30
INSTring . . . . . . . . . . . . . . . . . . . . . . . . 31
LENGth . . . . . . . . . . . . . . . . . . . . . . . . . 31
LIGHts . . . . . . . . . . . . . . . . . . . . . . . . . 32
LOCAlecho . . . . . . . . . . . . . . . . . . . . . . . 32
LOOKfor . . . . . . . . . . . . . . . . . . . . . . . . 32
MACLoad . . . . . . . . . . . . . . . . . . . . . . . . 33
MACRo . . . . . . . . . . . . . . . . . . . . . . . . . 34
MARK . . . . . . . . . . . . . . . . . . . . . . . . . . 35
NOOP . . . . . . . . . . . . . . . . . . . . . . . . . . 35
PARMs . . . . . . . . . . . . . . . . . . . . . . . . . 35
PASSword . . . . . . . . . . . . . . . . . . . . . . . . 36
PAUSe . . . . . . . . . . . . . . . . . . . . . . . . . 36
POPStack . . . . . . . . . . . . . . . . . . . . . . . . 36
PRINtlog . . . . . . . . . . . . . . . . . . . . . . . . 37
PUSHstack . . . . . . . . . . . . . . . . . . . . . . . 37
RCLOse . . . . . . . . . . . . . . . . . . . . . . . . . 38
READ . . . . . . . . . . . . . . . . . . . . . . . . . . 38
RETUrn . . . . . . . . . . . . . . . . . . . . . . . . . 39
ROPEn . . . . . . . . . . . . . . . . . . . . . . . . . 39
RXMOdem . . . . . . . . . . . . . . . . . . . . . . . . 40
SCREen . . . . . . . . . . . . . . . . . . . . . . . . . 41
SCROllback . . . . . . . . . . . . . . . . . . . . . . . 41
SEND . . . . . . . . . . . . . . . . . . . . . . . . . . 41
SETEsc . . . . . . . . . . . . . . . . . . . . . . . . . 42
SETGet . . . . . . . . . . . . . . . . . . . . . . . . . 43
SETLook . . . . . . . . . . . . . . . . . . . . . . . . 44
SETVariable . . . . . . . . . . . . . . . . . . . . . . 46
SHELl . . . . . . . . . . . . . . . . . . . . . . . . . 47
SFLOw . . . . . . . . . . . . . . . . . . . . . . . . . 47
SOUNd . . . . . . . . . . . . . . . . . . . . . . . . . 47
SPOCtrl . . . . . . . . . . . . . . . . . . . . . . . . 48
STATusline . . . . . . . . . . . . . . . . . . . . . . . 48
STOP . . . . . . . . . . . . . . . . . . . . . . . . . . 48
SUBString . . . . . . . . . . . . . . . . . . . . . . . 49
SXMOdem . . . . . . . . . . . . . . . . . . . . . . . . 49
TOGGles . . . . . . . . . . . . . . . . . . . . . . . . 50
UNMArk . . . . . . . . . . . . . . . . . . . . . . . . . 50
VTCUr . . . . . . . . . . . . . . . . . . . . . . . . . 51
VTPAd . . . . . . . . . . . . . . . . . . . . . . . . . 51
WCLOse . . . . . . . . . . . . . . . . . . . . . . . . . 51
WOPEn . . . . . . . . . . . . . . . . . . . . . . . . . 52
WRITE . . . . . . . . . . . . . . . . . . . . . . . . . 52
Appendix A Table of {COMMO} Key-labels . . . . . . . . . . 53
Enhanced Keyboard Key-labels . . . . . . . . . . . . . . 54
Appendix B Macro Functions Listed by Class . . . . . . . . 54
{COMMO} (tm) Macro Programming Guide page 1
==========================
Programming {COMMO} Macros
==========================
IMPORTANT! Please read the next few pages before you attempt to
write any macros! The rules for writing {COMMO} macros are few in
number, but must be followed carefully. Examples of more complex
macro programming are given in the sample Macro File COMMO.MAC, in
the supplied file SAMPLES.MAC and in the Host Mode and Guide macros.
The following sections assume familiarity with {COMMO}'s key
commands and with other features of the program. Since many macro
functions have corresponding key commands, duplicate explanations
will not be given here. Refer to the description of the key command
in COMMO.DOC.
{COMMO}'s Macro File may contain any number of macros. The only
size limitation on the file is that the Dialing Directory and Macro
File combined must total 64k bytes or less.
Macros are "interpreted," which implies the following:
(1) Macros are not processed until they are executed.
(2) Only macros within the currently loaded Macro File are
available for use.
(3) Macros added or modified with the Internal Editor are
available immediately.
Alternate Macro Files may be loaded using the MACLoad function (the
original file is replaced and may be reloaded at a later time).
Macro Structure
===============
Macros consist of a series of items enclosed in curly braces. Items
may be placed on the same line or on as many lines as desired. The
file is entirely free-form. Lines may be up to 255 characters in
length and all text outside the curly braces is ignored.
There are two types of items: "functions" and "labels."
Functions are action items. Some are equivalent to {COMMO} key
commands, such as DIAL, while others are unique to the macro
language, such as SETVariable.
Labels are macro entry points and may be placed anywhere within
the Macro File.
{COMMO} (tm) Macro Programming Guide page 2
Macro Functions
===============
Each macro function is described in detail later in this document.
See also Appendix B "Macro Functions Listed by Class."
The general form of any macro function is:
{name-switches arg1,arg2,...,argn}
name The function name describes the action to be
performed and consists of four or more characters.
Only the first four are significant and case is
ignored.
switches These are used to alter the operation of a
function. Each switch is a single letter and may
be followed by a numeric value, usually "1" or "0"
to indicate "yes" or "no" respectively.
Switches have default interpretations when the
numeric value is omitted, or when the switch is
not present.
Switches must be separated from the name with a
hyphen (no intervening spaces). They may be upper
or lower case.
See individual function descriptions for details
(note that only certain functions have switches).
args Arguments follow the function name and switches
separated by a SINGLE SPACE. Individual arguments
are separated with commas and may contain no
extraneous spaces (all spaces are significant).
NOTE: Curly braces may be represented within macro functions by
using ^( for { and ^) for }.
Examples:
{send Hi, how are you?}
This function sends the string "Hi, how are you?" to the
modem. SEND has only one argument -- the string to send
out. Since the string is the last argument, it may contain
commas and spaces. Quotes are not used to define strings.
{ifcon-LE label1,label2}
{COMMO} (tm) Macro Programming Guide page 3
The IFCOndition function tests for conditions set by other
functions, such as COMPare. Here two switches are present,
telling {COMMO} to test for less than or equal:
L Test for "less than."
E Test for "equal."
The two arguments are labels to GOTO depending on the
conditions.
Notice that "name-switches" may be written in a number of
different ways:
ifco-LE ifcondition-EL ifcond-LE
{asci-S0E1 pathname}
The ASCII Upload function will send the file indicated by
"pathname." The switches override current settings and tell
{COMMO}:
S0 Do NOT strip linefeeds.
E1 DO expand blank lines (may also be written "E").
{sound} {sound yes}
The first function will TOGGLE Master Sound ON/OFF (since
there is no argument). The second will turn the sound ON.
One very important function is the STOP function. It is used to
terminate macro processing and may appear in either its long form or
short form:
... {stop} long form
... {} short form
Macro processing continues until a STOP function is executed. Be
sure to use one or processing will continue into the next macro!
{COMMO} (tm) Macro Programming Guide page 4
Macro Labels
============
Labels are identifiers consisting of one or more characters. When a
label is defined, it must be preceded by a colon. References to
labels, such as {goto label}, do not require the colon.
IMPORTANT! {COMMO} always searches for labels from the beginning of
the Macro File. This means that if a label is duplicated within the
file, the first occurrence will be used.
Only the first eight characters in a label are significant. Case is
ignored. All characters are allowed in labels except the following:
colon ":"
space " "
comma ","
slash "/"
curly braces "{" or "}"
Examples:
{:mailrun} {call login} ...
{:start-here} {:another.entry} {send Begin now!} ...
A number of three character labels are reserved and are called "key-
labels." When the corresponding key is pressed from the Terminal
Screen, {COMMO} will look for the key-label in the current Macro
File. If the key-label is found, macro processing will begin at
that location.
Any default key assignment may be overridden using a key-label. For
example, pressing Alt-D normally enters the Dialing Directory. But
suppose this line is in the Macro File:
{:ald} {clear} {}
Now pressing Alt-D will clear the screen.
See Appendix A "Table of {COMMO} Key-labels" for a complete list of
keys that may be assigned.
Macro Variables
===============
{COMMO} maintains a String Variable Space in which variables appear
in the form:
name,string
{COMMO} (tm) Macro Programming Guide page 5
name An identifier consisting of one or more characters
of which only the first eight are significant.
Case is ignored. The following are the ONLY valid
characters that my be used in a variable name:
"A" through "Z"
"a" through "z"
"0" through "9"
"_" underline.
All other characters will terminate the name.
string A text string. The string must not contain any
control characters below ASCII 28. Null strings
(0 characters) do not appear in variable space.
Strings consisting of only the digits 0-9 and
representing a decimal number from 0 to 65535 are
also numeric variables (there is no other
difference between string and numeric variables).
The maximum length of strings is 240 characters.
The String Variable Space may be viewed from within the Macro
Processor window by pressing "V". The amount of unused string space
is shown at the bottom of the screen.
Once a variable is defined, it remains in String Variable Space
until it is redefined or deleted (set to null). Therefore variables
should be deleted or re-used to prevent String Variable Space from
becoming full.
How to Use Variables
====================
{COMMO} variables may be used in macro functions and also in the
telephone number field of the Dialing Directory. See "Alt-D
Dialing Directory" in COMMO.DOC for this latter usage.
When a variable name appears within a function, the string assigned
to the name is substituted for the name. If the variable is null,
then the name is replaced with 0 characters. {COMMO} will expand
the variables in a function before processing it.
In order to distinguish variable names, they must be preceded with a
percent sign "%" (use two percent signs if a percent sign is needed
in the data).
The end of the variable name is indicated with another "%" or with
the first character that is not allowed in a name (see above).
{COMMO} (tm) Macro Programming Guide page 6
A variable definition example:
{setvar animal,Elephant} or {setvar %animal,Elephant}
Notice that the "%" is not required (but is permitted) when
the variable name is the first argument of a function that
defines, modifies or tests the value of a variable. Other
such functions include INPUt, GETString, INCRement,
DECRement, COMPare, SUBString, INSTring, READ.
If the variable name in this situation needs to be a
variable, then use two percent signs:
{setv %%animal,Elephant}
Variable usage examples:
{setvar animal,Elephant}
{send %animal} Sends "Elephant" to the modem.
{send animal} Sends "animal".
{send %animal%s are large animals}
Sends "Elephants are large animals".
Note that the trailing "%" is required
here.
{setvar animal,Elephant}
{setv creature,animal}
{send creature} Sends "creature".
{send %creature} Sends "animal".
{setv %%creature,Giraffe}
{send %animal} Sends "Giraffe".
IMPORTANT! Variables may NOT be substituted within the function
name or switches. They may be substituted anywhere else, even for
the commas separating arguments.
Reserved Variables
==================
Certain variables have fixed names so that {COMMO} can find them
whenever they are needed. You must define some of these to enable
special program features. Others are defined by {COMMO} based on
operating conditions.
Reserved variable names begin with an underline character "_" to
distinguish them from ordinary variables.
{COMMO} (tm) Macro Programming Guide page 7
Following is a list of reserved variables that must be entered in
String Variable Space. They may be defined in the Setup File or
within a macro:
_modini Modem Initialization String
_dialpf Default Dialing Prefix
_dialsf Default Dialing Suffix
_dialsr Dialing Success responses
_dialfr Dialing Failure responses
_uselog Pathname of Usage Log
These variable names begin with "_" to remind you that they are
special. They may be changed at any time.
Here is a list of "built-in" variables that do not appear in String
Variable Space:
_hom {COMMO} home directory: c:\commo\, etc.
_set Filename of Setup File
_fon Filename of Dialing Directory
_mac Filename of default Macro File
_cap Current Capture File pathname
_scr Current Screen Image File pathname
_err Errorlevel from last EXEC-D, RXMOdem or SXMOdem
_pos Position in string
_len Length of string
_por Current serial port number: 1, 2, etc.
_spe Current serial port speed: 2400, 9600, etc.
_mod Last speed reported by modem
_nci Number of characters in input buffer
_pas Current Password String
_ela Elapsed time in minutes
_dat Full date, mm/dd/yy
_mon Month, mm
_day Day of the month, dd
_yea Year, yy
_dwn Numeric day of the week: 1=Mon, ... , 7=Sun
_dwt Text day of the week: Mon, Tue, ...
_tim Full time, hh:mm xm (am or pm)
_24h 24 hour, hh
_12h 12 hour, hh
_amp Am/pm indicator, xm
_min Minute, mm
_sec Second, ss
_row Current cursor row
_col Current cursor column
Any variable that starts with the same four characters as a built-in
variable will be considered the same variable. For example "_pas"
may be written "_password" and "_yea" may be written "_year".
{COMMO} (tm) Macro Programming Guide page 8
NOTE: Any attempt to set a built-in variable will result in an
entry in variable space, thus effectively redefining it (it's built-
in value will not be available again until this entry is set to
null).
Executing Macros
================
Macro execution may be started in any of the following ways:
1) Open the Macro Processor window by pressing Alt-M. Position the
Selector Bar at the desired starting point and press [Enter].
The Macro Processor will begin processing at the first macro
label or function on the line.
NOTE: Macros started with the Selector Bar do not need macro
labels and may be started at any point within the macro.
2) If a macro label is also a key-label, then you may press that key
from the Terminal Screen. Note that if the same key-label
appears more than once, the first occurrence will be used.
3) A macro may be linked to a Dialing Directory entry. In this case
{COMMO} will GOTO the macro when a connection is established with
that system (or optionally CALL it, see the DIAL function).
4) A startup macro may be specified in the Setup File using the
"{mac=label}" item.
5) A startup macro may be specified on the command line with the
switch "/:label". This will override the Setup File macro.
6) A macro may be an argument of another function such as CALL,
GOTO, DIAL or SETLook (these are detailed in a later section).
Some macro functions show their current action on the status line at
the bottom of the screen. In addition, a "face" character in the
middle of the status line indicates that a macro is executing.
Additional Macro Execution Rules
================================
ASCII keys may be typed to the serial port during long functions
(LOOKfor, GETString, PAUSe, HOLD, etc.).
The Macro Processor will execute functions in order until one of the
following conditions occurs:
1) A CALL, GOTO, RETURn, STOP, EXIT, etc. is encountered.
{COMMO} (tm) Macro Programming Guide page 9
2) Control is transferred to an alternate macro from certain
functions when a special condition occurs. An example of this is
the SETLook function. The alternate will execute when a
subsequent LOOKfor times out.
3) A macro error occurs. This will bring up the Macro Processor
window with the Selector Bar on the problem line. The macro will
be terminated.
4) The end of the Macro File is reached.
Cancelling a Macro
==================
The [Esc] key is used to terminate macro processing. To send an
<esc> code to the remote (ASCII 27) during macro execution, press
Ctrl-[ (Ctrl + left bracket).
Current function execution may be terminated by pressing
[Ctrl-Break]. For example, this can be used to terminate a LOOKfor,
PAUSe or HOLD prematurely. Macro processing will advance to the
next function.
If a macro contains a function that brings up a {COMMO} window
(Dialing Directory, Capture File Options, etc.), then [Esc] will
exit the window and processing continues with the next function. To
terminate macro processing from a window, press [Ctrl-Break].
NOTE: The SETEsc function may be used to help prevent accidental
termination of macros.
=======================================
Description of Functions (Alphabetical)
=======================================
The purpose of this section is to show the syntax of each function
and the meaning of its arguments through examples. All functions
are listed here, but details on functions which are also default key
commands are found in COMMO.DOC under "{COMMO} Key Commands."
Function names are shown with their four-letter abbreviations in
uppercase.
For consistency, the following conventions are used in many
functions:
"y" or "yes" is used to indicate "yes", "on", "open", etc.
"n" or "no" is used to indicate "no", "off", "close", etc.
{COMMO} (tm) Macro Programming Guide page 10
ABAUd
-----
Default key: none
Description: Set AutoBaud toggle.
Examples:
{abaud} Toggle AutoBaud on/off
{abaud y} Turn on AutoBaud
{abaud n} Turn off AutoBaud
ALARm
-----
Default key: none
Description: Ring the alarm.
Examples:
{alarm} Ring alarm, use ring count in Setup File.
{alarm 2} Ring alarm 2 times.
{COMMO} will wait until the alarm has stopped ringing before
proceeding to the next macro function (the alarm may be terminated
early by pressing a key).
ASCIiup
-------
Default key: Alt-A
Description: Upload an ASCII (text) file.
General form:
{ASCIiup pathname[\],pace}
pathname The complete path and filename (if the path
is absent, the current directory will be
used).
If a "\" is placed at the end of the
pathname, the path will appear as a prompt in
the ASCII Upload window.
pace The pacing character to be used.
Switches:
E1 or E Expand blank lines. A space will be sent when a
zero-character line is encountered.
{COMMO} (tm) Macro Programming Guide page 11
E0 Do not expand blank lines.
S1 or S Strip linefeeds from outgoing text.
S0 Do not strip linefeeds.
If a switch is absent, the current setting of the
toggle will be used. The toggles can be set in
the Setup File or by using the Alt-T key command.
Switches apply to the current function only and do
not affect the setting of the toggles.
Examples:
{asci} Open ASCII Upload window.
{asci-S} Open ASCII Upload window, strip
linefeeds when file is sent.
{asci %uldir%\} Open ASCII Upload window, prompt
with the current value of the
variable "uldir".
{asci c:\msgs\file.xyz,:} Upload "file.xyz." Use ":" for
pacing.
{asci-E0 c:\msgs\file.xyz} Upload "file.xyz." Use current
pacing character, do not expand
blank lines.
{asci c:\msgs\file.xyz,} Upload "file.xyz." Do not use
pacing.
{asci ,?} Set current pacing character to "?"
{asci ,} Set current pacing to "no" pacing.
The pacing character may be entered according to the rules in
Appendix D "ASCII Character Representation." For example, "^m" or
"|" may be used to represent the carriage return.
AUTO
----
Default key: none
Description: Maintain Auto Receive strings.
General form:
{AUTO label,string}
{COMMO} (tm) Macro Programming Guide page 12
label Label to GOTO when the string is received.
string String to look for, may be up to 32
characters.
Examples:
{auto} Clear all Auto Receive strings.
{auto zmodem,^XB00} Zmodem Auto Receive string.
Note that only 8 Auto Receive strings may be in effect at the same
time (including any strings defined in the Setup File). Use this
function with no arguments to clear all strings when necessary.
BEEP
----
Default key: none
Description: Sound a beep.
Example:
{beep} No arguments.
BREAk
-----
Default key: Alt-B
Description: Send a break.
Example:
{break} No arguments.
CALL
----
Default key: none
Description: Execute a macro subroutine.
Example:
{call abc} Execute subroutine abc.
CALL will push the location following the CALL function onto the
macro stack, then it will GOTO the label given in the argument.
When a RETUrn is executed, the location will be popped and control
will return to the function following the CALL.
Note that macros may be nested up to 32 deep.
See also RETUrn, PUSHstack, POPStack.
{COMMO} (tm) Macro Programming Guide page 13
CAPMode
-------
Default key: none
Description: Set Capture Mode.
Examples:
{capmode screen} Set Capture Mode to SCREEN.
{capmode filter} Set Capture Mode to FILTER.
{capmode raw} Set Capture Mode to RAW.
See also CAPTure.
CAPTure
-------
Default key: Alt-1
Description: Capture File Options.
Examples:
{capture} Open Capture File Options window.
{capture y} Open current Capture File.
{capture n} Close current Capture File.
{capt y,c:\commo\file.xyz} Open indicated Capture File.
{capt n,c:\dl\newfile.cap} Close current Capture File, set new
file as indicated.
NOTE: The current Capture File will always be closed when a new
file is opened.
See also CAPMode.
CHATmode
--------
Default key: Alt-- (Alt minus)
Description: Set Chat Mode toggle.
Examples:
{chat} Toggle Chat Mode on/off.
{chat y} Turn on Chat Mode.
{chat n} Turn off Chat Mode.
{COMMO} (tm) Macro Programming Guide page 14
CLEAr
-----
Default key: Alt-C
Description: Clear Terminal Screen to default colors.
Example:
{clear} No arguments.
COMPare
-------
Default key: none
Description: Compare a string or numeric variable.
General form:
{COMPare name,string}
name The name of a variable.
string A string of ASCII characters.
Examples:
{comp pword,aardvark} Test if the variable "pword" is set
to "aardvark."
{comp pword} Test if "pword" is null.
{comp pword,} Test if "pword" is null.
{comp nmbr,5} Compare a numeric variable.
{comp abc,%xyz} Test if the variable "abc" is equal
to the variable "xyz."
A numeric variable is a string of ASCII digits, 0-9, forming a
positive integer in the range from 0 to 65535. If the number is
outside this range or contains non-numeric characters, the results
of the compare will be unpredictable.
COMPare will set flags which can be tested with the IFCOndition
function.
The Condition Flag will be set to "true" if the two arguments are
identical strings (case is ignored). Otherwise it will be set to
"false."
The Numeric Flag will be set to "equal", "less than" or "greater
than." This flag is unpredictable unless both arguments are
valid numerics.
{COMMO} (tm) Macro Programming Guide page 15
A variable may be tested for being null (no entry in variable space)
by omitting the second argument (or by comparing to a null
variable).
See also IFCOndition.
CURSor
------
Default key: none
Description: Terminal Screen cursor on/off.
Examples:
{cursor} Toggle Terminal cursor on/off.
{curs y} Turn on Terminal Screen cursor.
{curs n} Turn off Terminal Screen cursor.
DECRement
---------
Default keys: none
Description: Subtract an amount from a numeric variable.
Examples:
{decr number,200} Subtract 200 from "number".
{decr count} Subtract 1 from the variable "count".
Numeric variables and the amounts to be subtracted may range from 0
to 65535. The default amount is 1. Results less than 0 will be set
to 0.
If the variable is not numeric, the results will be unpredictable.
See also INCRement.
DIAL
----
Default keys: Alt-D, Alt-N
Description: Dialing Directory.
General form:
{DIAL tries,label}
tries The maximum number of dialing tries. If no
connection is established when the try count is
exhausted, the macro in the second argument will
be started. May be 0 to 999. "0" means
unlimited. Default is 0.
{COMMO} (tm) Macro Programming Guide page 16
label A macro to GOTO if the try count in the first
argument is exhausted. If no macro is specified
or if the macro label is invalid, control will
pass to the next function. Default is none.
Switches:
C1 or C Specifies that a Linked Macro (from the Dialing
Directory) will be entered via CALL (instead of
GOTO). When the Linked Macro executes a RETUrn,
control returns to the DIAL function and Multi
Number Dialing will resume (see below).
C0 Enter the Linked Macro via GOTO (default).
Examples:
{dial} Open Dialing Directory window (like Alt-D).
{dial ,} Multi Number Dial (like Alt-N).
{dial 25,abc} Multi Number Dial with try count.
{dial-C ,} Multi Number Dial, CALL Linked Macros.
Marked numbers will be redialed in sequence. Numbers may be marked
in one of several ways:
1) Manually in the Dialing Directory window.
2) By placing Dialing Strings on the {COMMO} command line.
3) Using the MARK macro function.
If a connection occurs and a valid Linked Macro is specified in the
Dialing Directory, the macro will be started (via GOTO unless the
"C" switch is present). If no macro is specified in the Dialing
Directory, control is passed to the next function.
To automatically resume Multi Number Dialing at the end of a Linked
Macro, use one of the following methods.
1) Execute the following sequence at the end of each Linked
Macro (or GOTO it):
... {setlook 60} {lookfor ^jNO CARRIER^m} {dial ,} {}
This allows more than one system to be called without
operator intervention. This method will also work when
{COMMO} (tm) Macro Programming Guide page 17
using Dialing Strings on the command line or when pressing
Alt-U after marking systems for dialing.
2) Use the "C" switch in the DIAL function. Each Linked Macro
should end with a RETUrn which will transfer control back to
the DIAL. When all numbers have been called, the DIAL will
pass control to the next function in sequence.
See also: MARK, UNMArk.
DISPlay
-------
Default key: none
Description: Display a string to the screen.
General form:
{DISPlay row,col,attr,string}
row The row where the string will display.
col The column where the string will display.
attr The attribute (colors) of the string.
string The text of the string (no quotes).
Examples:
{display 12,20,17,Hello!} Display "Hello!" at row 12, column
20. Colors are white on blue.
{disp ,,,Hello, again.^m^j} Display "Hello, again." at the
current cursor using the current
attribute, followed by a cr/lf.
{disp 3,40} Position the cursor at row 3,
column 40.
The attribute is specified in the same manner as the colors in the
Setup File (press F10 in the Internal Editor to display the Color
Chart).
Setting background colors to high intensity values will cause
blinking (for example, using "9" instead of "1" will still give a
blue background but the foreground character will blink).
After the string is displayed, the previous Terminal Screen
attribute will be restored.
Note that translation is performed on the string according to the
rules in Appendix D.
{COMMO} (tm) Macro Programming Guide page 18
DOORway
-------
Default key: Alt-=
Description: Toggle Doorway Mode.
Switches:
S1 or S Status Line on when entering Doorway Mode.
S0 Status Line off (default).
M0 Do not display Doorway enter/exit messages.
M1 Display enter/exit messages (default).
Examples:
{doorway} Toggle Doorway Mode on/off.
{door-S} Status Line on when entering Doorway Mode.
{doorway-M0} Do not display enter/exit messages.
The "S" switch is ignored when exiting Doorway Mode (the Status Line
will be restored to its prior state).
DPARms
-----
Default key: Alt-P
Description: Set Default Dialing Terminal Parameters
General form:
{DPARms speed,format,comport,terminal-type,delay}
speed The bps rate: 2400, 9600, etc.
format The data format: 8n1, 7e1, etc.
comport The serial port number: 1, 2, 3 or 4.
terminal The terminal-type: A, V or T.
delay The inter-character delay factor: 0-999.
Examples:
{dparms 2400,8,1,,20} Set 2400 bps, 8n1, Com1, delay = 20.
{dparms ,,4,V} Set Com4 VT102.
{dparms 19200,7o1} Set 19200 bps, 7o1.
Note that omitted parameters are not changed.
See also PARMs.
{COMMO} (tm) Macro Programming Guide page 19
EDIT
----
Default key: none
Description: Edit an external file.
Example:
{edit c:\autoexec.bat} Edit AUTOEXEC.BAT file.
EDIT may be used to edit any text file up to 64k in length. The
rules are the same as for editing a support file with the Internal
Editor.
TIPS on using EDIT:
> Control characters (below ASCII 28) may not be typed.
> Blank lines at the end of the file and end-of-file marks will be
removed prior to editing.
> The file will be "saved in place" (no backup) when Alt-F or Esc
is pressed.
ELAPse
------
Default key: none
Description: Reset the elapsed timer to 0 minutes.
Example:
{elap} No arguments.
The elapsed timer is automatically reset whenever dialing begins and
when a connection is made with a remote system.
EXECute
-------
Default key: none
Description: Execute a DOS command.
Switches:
A1 or A Sound the alarm at the end of command execution.
A0 Do not sound the alarm (default).
D1 or D Execute an external program directly, without use
of the command processor (see details below).
{COMMO} (tm) Macro Programming Guide page 20
D0 Use the command processor (default).
N1 or N Do not clear the screen before execution. This is
useful when running programs that clear or rewrite
the screen. Also for simple DOS functions like
changing directories, renaming files, etc.
N0 Clear the screen (default).
W Wait for a key press before restoring the Terminal
Screen. This is useful if you need to see the
results of the command execution.
Wn Wait for "n" seconds, "n" may range from 0 to 999.
Press a key to cancel the wait.
Note: Default (no "W" switch) is no wait.
Examples:
{exec-AW3 dsz port %_por speed %_spe sz %uldir%\%file}
{COMMO} will prepare the DSZ command by expanding the "%"
variables, then call DOS to execute the program.
See the section "Macro Variables" for complete details on
variable substitution.
The alarm will sound at completion (the "A" switch) and
{COMMO} will wait for three seconds (the "W3" switch) before
restoring the Terminal Screen.
{execute-DN c:\utils\list.com %_cap}
The LIST program will be directly executed with the current
Capture File pathname as a command line argument. The
screen will not be cleared (LIST will rewrite the screen).
{COMMO} will return immediately to the Terminal Screen when
LIST exits.
The EXECute function enables you to "build" a command to be executed
by DOS. The DOS command processor (COMMAND.COM) is normally used
(see below), which implies that you may specify any command as you
would type it from the DOS prompt.
Thus you can execute batch files and internal DOS commands (REN,
DEL, etc.). Also you can omit command paths and extensions (if the
command is in your PATH or in the current directory).
Character translation is performed in the EXECute function. This
enables you to specify control characters. For example:
{COMMO} (tm) Macro Programming Guide page 21
{exec echo ^L> prn} Send a formfeed to the printer
See Appendix D for details on translation. Note that the vertical
bar "|" is NOT translated to a carriage return in an EXECute
function.
Using the Direct Switch: exec-D
-------------------------------
Use this switch to execute .EXE and .COM programs without the use of
the command processor (usually COMMAND.COM).
The program's Exit Code (called ERRORLEVEL in batch files) is saved
and may be tested with the IFERrorlevel function. The Exit Code is
also available in the variable "_err".
There are several advantages to using the "D" switch:
1) Only the memory needed to run the program is required (the
command processor requires that about 32k be available, even if
the program being run is much smaller).
2) About 4k of memory is saved by not having a copy of the command
processor resident when the program is running.
3) The program executes faster, since COMMAND.COM is not loaded from
disk.
4) The program's Exit Code is preserved and may be tested with the
{COMMO} IFERrorlevel function.
Two important rules must be followed when using the "D" switch:
1) The full pathname of the program file must be specified,
including the path where the file resides on disk and the file
extension. For example:
{exec-D c:\util\list.com file.txt}
2) Only .EXE and .COM files may be run (batch files and internal DOS
commands cannot be executed without the command processor).
{COMMO} (tm) Macro Programming Guide page 22
EXECute Preview Mode
--------------------
Use the Set Toggles key command, Alt-T, to turn on "EXECute Preview
Mode." This mode is used to test your DOS commands and performs the
following steps for each EXECute function:
1) The command will be displayed after expanding variables and
translating control characters.
2) You will be given an opportunity to cancel the command before it
is executed.
3) Following execution {COMMO} will wait before restoring the
Terminal Screen. This lets you see any error messages that the
command may have displayed.
EXIT
----
Default key: Alt-X
Description: Exit {COMMO}.
General form:
{EXIT number}
number The return code to be passed to DOS. It may be
tested with the IF ERRORLEVEL batch command.
Range is 0 to 255.
Switches:
D1 or D Drop DTR and RTS. Dropping DTR will cause the
modem to disconnect if it has been properly
initialized. See Appendix A.
D0 Do not drop DTR and RTS.
If the switch is absent, the current setting of
the toggle will be used. The toggle can be set in
the Setup File or by using the Alt-T key command.
Examples:
{exit} No arguments (return code = 0).
{exit 3} With return code.
{exit-D} Drop DTR and RTS.
{COMMO} (tm) Macro Programming Guide page 23
GETString
---------
Default key: none
Description: Input a string from the modem to a variable.
General form:
{GETString name,count,label}
name The name of the variable to which the string will
be assigned.
count The maximum number of data characters allowed. A
carriage return will always terminate input. May
be 1 to 240. Default is 240.
label A macro to GOTO if a carriage return is received
and no characters have been entered (the string
will be assigned as null). If this argument is
omitted, control will pass to the next function.
Switches:
A1 or A "Append" mode. Characters will be appended to the
variable. If the current length of the variable
is greater than the count in the second argument,
a count of 240 will be assumed.
A0 The variable will be overwritten (default).
H1 or H "Hotkey" mode. When the maximum number of
characters has been entered, control will pass to
the next function.
H0 Ignore all input after the maximum has been
entered, except backspace and carriage return
(default).
P1 or P "Password" mode. Asterisks will be echoed to the
remote and local terminals in place of the
received characters (Echo Status will be honored,
see SETGet).
P0 Characters are echoed as received (default).
Examples:
{setget 60,timeout,y,^m^j} Set GETString parameters.
{gets fonum,12,badinput} Get input to "fonum."
{gets-p pword,20} Get a password.
{COMMO} (tm) Macro Programming Guide page 24
TIPS on using GETString:
> The only control characters allowed (below ASCII 28) are carriage
return (ASCII 13) and backspace (ASCII 8). Other control
characters should be entered as ^J for linefeed, etc. See
Appendix D.
> Destructive backspace processing is supported for editing
purposes.
> GETString supports "tandem" input. Characters entered at either
end will be input to the string (and displayed at both ends if
echo is on (see SETGet). Turn on Local Echo to see text locally
that is sent to the remote with SEND, ASCIiup, etc.
> Use the "H" switch and a character count of 1 for "hotkeys."
> Turn off echo in the SETGet while waiting for the modem to answer
(in host mode). Some modems react poorly to characters being
echoed when they are generating a response (such as "RING").
> Incoming characters displayed during a GETString function are not
seen by subsequent GOLOok/LOOKfor functions.
See also SETGet.
GOLOok
------
Default key: none
Description: Set a macro label to GOTO if a string comes in during a
subsequent LOOKfor function.
Example construct:
{setlook 60,hng,3,n|}
...
{:mac} {golook aaa,string1}
{golook ,string2}
{golook bbb,string3}
{lookfor string4} {send answer4|} {goto ccc}
{:aaa} {send answer1|} {goto mac}
{:bbb} {call xyz} {goto mac}
{:ccc} ...
In this example {COMMO} will look for four strings. When any string
comes in, the LOOKfor is terminated (all strings are cancelled). It
may be set up again by going back to "mac."
{COMMO} (tm) Macro Programming Guide page 25
The GOLOok functions for string1 and string3 will GOTO "aaa" or
"bbb" respectively if one of the strings comes in. In the example
control returns to "mac" and the four strings will continue to be
looked for.
The GOLOok for string2 has a null label and control will pass to the
function following the LOOKfor if the string comes in. The "," must
be present.
If string4 comes in, control will also pass to the function
following the LOOKfor.
TIPS on using the GOLOok function:
> GOLOok functions should immediately precede a LOOKfor (no string
compares actually occur until the LOOKfor executes). Up to 15
GOLOoks may be used for a total of up to 16 strings to scan for.
> If two or more strings cause a match at the same time, the LAST
such string listed is the one acted upon. For example, when
"abcdef" and "def" are listed and "abcdef" comes in.
> Since the LOOKfor is terminated whenever any of the strings come
in (or when the LOOKfor timeout expires), this structure is
unrestricted -- that is, CALLs, GOTOs, other GOLOok/LOOKfor
constructs, etc., may be used freely in any of the branches.
> See the PUSHstack function for an example showing how to improve
the structure of the GOLOok/LOOKfor sequence.
See also "TIPS on creating LOOKfor strings" in the section
describing the LOOKfor function.
See also: LOOKfor, SETLook, PUSHstack, POPStack.
GOTO
----
Default key: none
Description: Transfer control to a macro label.
Example:
{goto mail_run} Control transferred to label "mail_run".
HANGup
------
Default key: Alt-H
Description: Disconnect by dropping DTR.
{COMMO} (tm) Macro Programming Guide page 26
Examples:
{hangup} Prompt user for disconnect.
{hangup y} Disconnect without prompting.
HELP
----
Default key: F1
Description: Open Online Help window.
Example:
{help} Display key command help
{help x} Display topic "TX"
Any single character may be specified. {COMMO} will prefix it a "T"
and search for the topic code. You may create your own Online Help
file. See "Modifying the Help File" in COMMO.DOC.
HFLOw
-----
Default key: none
Description: Set Hardware Flow Control toggle.
Examples:
{hflow} Toggle Hardware Flow Control on/off.
{hflow y} Turn on Hardware Flow Control.
{hflow n} Turn off Hardware Flow Control.
HOLD
----
Default key: none
Description: Hold until specified time of day (24 hour format).
Examples:
{hold 3:30} Hold until 3:30 am.
{hold 16:10} Hold until 4:10 pm.
{hold 0:00} Hold until midnight.
NOTE: Incoming characters displayed during a HOLD function are not
seen by subsequent GOLOok/LOOKfor functions.
IFCArrier
---------
Default key: none
Description: Test for presence of carrier detect signal.
{COMMO} (tm) Macro Programming Guide page 27
General form:
{IFCArrier true,false}
true A label to GOTO if carrier is detected.
false A label to GOTO if carrier is not detected.
NOTE: The default when either label is omitted is to pass control
to the next function.
Example:
{ifcarrier c10,c20}
Tip on using IFCArrier:
> When using a loop to wait for a change in carrier detect, you
should include a short pause in the loop if you want characters
to display. The following sequence will display incoming
characters while waiting for carrier detect to drop:
... {:cd1} {pause 1} {ifcarrier cd1} ...
IFCOndition
-----------
Default key: none
Description: Test for conditions set by other functions.
General form:
{IFCOndition true,false}
true A label to GOTO if the Condition Flag is true.
false A label to GOTO if the Condition Flag is false.
NOTE: The default when either label is omitted is to pass control
to the next function.
Switches:
none Test the current state of the Condition Flag.
E1 or E Test for numeric equality. A numeric string
contains only the digits 0-9 and is in the range 0
to 65535.
L1 or L Numeric test -- if first COMPare argument is less
than the second.
{COMMO} (tm) Macro Programming Guide page 28
G1 or G Numeric test -- if first COMPare argument is
greater than the second.
Examples:
{compare var1,message} Compare and set Condition Flag.
{ifcondit match,nomatch} GOTO "match" if the variable "var1"
is set to "message," to "nomatch"
if it is not.
{compare value,200} Compare and set conditions.
{ifcon-GE toobig,aok} GOTO "toobig" if "value" is greater
than or equal to 200, else GOTO
"aok."
{instring zipcode,90} Test if "zipcode" contains the
{ifcon yes,no} digits "90". If "true" GOTO "yes",
if "false" GOTO "no".
Switches may be used in any combination. If any numeric switches
are present, the Condition Flag is not tested.
The difference between testing for string equality and numeric
equality is shown in this example:
The strings "05" and "5" are different text strings, but are
numerically equal.
IFERrorlevel
------------
Default key: none
Description: Test the Exit Code set by certain functions.
General form:
{IFERrorlevel number,true,false}
number A number from 0 to 255. It will be compared
to the last Exit Code that was set.
true A label to GOTO if the Exit Code is greater
than or equal to "number."
false A label to GOTO if the Exit Code is less than
"number."
NOTE: The default when either label is omitted is to pass control
to the next function.
Example:
{COMMO} (tm) Macro Programming Guide page 29
{iferror 1,abc,def} GOTO "abc" if Exit Code is greater
than or equal to 1. Else GOTO def.
TIPS on using IFERrorlevel:
> The Exit Code is set by certain functions (e.g., EXECute-D,
SHELl, RXMOdem, SXMOdem) and should normally be tested
immediately following execution of those functions.
> EXECute without the "D" switch or Shell to DOS will normally set
the Exit Code to 0.
> Many programs return an Exit Code greater than 0 when the result
is unsuccessful. DSZ, for example, will return an Exit Code of 1
if the file transfer has failed.
> The value of the Exit Code is also stored in the string variable
"_err" and may be tested with COMPare.
IFEXist
-------
Default key: none
Description: Test for existence of a disk file or files.
General form:
{IFEXist pathname,true,false}
pathname A DOS pathname. If the path is omitted, the
current directory will be used. If wildcards
are used the "true" condition will hold if
any files match the specification.
true A label to GOTO if the file exists.
false A label to GOTO if no files match.
NOTE: The default when either label is omitted is to pass control
to the next function.
Examples:
{ifex a:file.xyz,,m20} GOTO "m20" if not found.
{ifex c:\data\words.txt,345} GOTO "345" if found.
{ifex c:\ul\*.rep,a01,a02} Using a wildcard.
{COMMO} (tm) Macro Programming Guide page 30
INCRement
---------
Default keys: none
Description: Add an amount to a numeric variable.
Examples:
{incr number,1234} Add 1234 to "number".
{incr count} Add 1 to the variable "count".
Numeric variables and the amounts to be added may range from 0 to
65535. The default amount is 1. Results greater than 65535 will be
set to 65535.
If the variable is not numeric, the results will be unpredictable.
See also DECRement.
INITmodem
---------
Default key: Alt-O
Description: Send Modem Initialization String.
Example:
{init} No arguments
INPUt
-----
Default key: none
Description: Input a string from the keyboard.
General form:
{INPUt name,prompt}
name The name of a string variable. The current value
of this variable will appear in the input line.
prompt A prompt string that will appear in the input
window border.
Example:
{input upfile,Enter a filename:} Input a string to the
variable "upfile."
If 0 data characters are entered, the variable will be set to null.
{COMMO} (tm) Macro Programming Guide page 31
NOTE: If Esc is pressed, macro processing will be terminated unless
an exit label has been defined with SETEsc.
INSTring
--------
Default key: none
Description: Find a string within a string, return its position.
General form:
{INSTring name,string}
name The name of a variable (string to search in).
string The string to search for.
Example:
{inst line,abc} The variable "line" is searched for the
string "abc".
INSTring will set the following:
1) The Condition Flag will be set to "true" if the string is
found, to "false" if the string is not found. Test with
IFCOndition, no switches.
2) The starting position of the string will be returned in the
built-in variable "_pos" (first character is "1"). "_pos"
will be set to zero if the string is not found.
LENGth
------
Default key: none
Description: Determine the length of a string.
Examples:
{leng %line} Find the length of the string in the
variable "line".
{leng %line1%%line2} Find the combined length of "line1" and
"line2".
The length will be returned in the built-in variable "_len". If the
string is null, the length will be set to zero.
{COMMO} (tm) Macro Programming Guide page 32
LIGHts
------
Default key: Alt-0
Description: Set Signal Lights toggle.
Examples:
{lights} Toggle Signal Lights on/off.
{lights y} Turn on Signal Lights.
{lights n} Turn off Signal Lights.
LOCAlecho
---------
Default key: none
Description: Set Local Echo toggle.
Examples:
{local} Toggle Local Echo on/off.
{local y} Turn on Local Echo.
{local n} Turn off Local Echo.
LOOKfor
-------
Default key: none
Description: Look for a string in the modem input stream.
Examples:
{setlook 60,abc,4,n|} Set parameters.
{lookfor first name?} Look for the string "first name?"
{look ^(COMMO^)} Look for the string "{COMMO}".
Parameters controlling LOOKfor execution are set with the SETLook
function, which should be executed before any LOOKfor functions.
See the description of the SETLook function for details.
The LOOKfor function will scan for the requested string to appear,
then macro execution will continue with the next function.
Use the GOLOok function to scan simultaneously for up to 15
additional strings during a LOOKfor.
TIPS on creating LOOKfor (and GOLOok) strings:
> There should be just one space following the LOOKfor function
name. Any spaces beyond this point are part of the string. The
string ends at the right curly brace.
{COMMO} (tm) Macro Programming Guide page 33
> GOLOok and Auto Receive strings begin after the comma following
the macro label. There should be no spaces unless they are part
of the string.
> Strings may be up to 32 characters in length (control characters
like "^M" count as one). Upper/lower case is ignored.
> ANSI control sequences are filtered if ANSI or VT102 emulation is
enabled.
> Remember that short strings may not be unique enough, long
strings may not match due to line noise.
> Rules for representing special characters in LOOKfor strings are
given in Appendix D "ASCII Character Representation."
See also: GOLOok, SETLook.
MACLoad
-------
Default key: none
Description: Load a new Macro File.
Switches:
R1 or R Specifies that COMMO.MAC will be reloaded when
carrier detect is lost. Normally this would occur
at the end of the call.
R0 Do not reload COMMO.MAC when carrier is lost
(default).
General form:
{MACLoad filename,label}
filename The new Macro File. Do NOT specify a path;
the {COMMO} home directory will be used.
label A label to GOTO when the new file is loaded.
Optional.
Examples:
{macload-R vt102-1.mac} Load vt102-1.mac, reload COMMO.MAC
at the end of the call.
{macl newmac.fil,abc} Load newmac.fil, start macro "abc"
in the new file.
{COMMO} (tm) Macro Programming Guide page 34
IMPORTANT! The new Macro File must reside in the {COMMO} home
directory (do not specify a path).
The current file will be saved to disk if changes are outstanding.
The new file is then loaded in place of the current one (all macros
are replaced).
MACLoad should be the last function in a macro, since control is not
returned.
MACRo
-----
Default key: Alt-M
Description: Open Macro Processor window.
Examples:
{macro} Open window at current position.
{macro menu1} Open window at "menu1."
NOTE: The MACRo function always terminates the currently executing
macro.
A string argument may be included to facilitate the creation of
menus within the Macro File. The first occurrence of the argument
string will become the top line of the display when the window is
opened.
The Selector Bar will be positioned on the first screen line that
has a left curly brace, if any.
Here is an example of how to structure a menu using MACRo:
| (this is past col. 80)
| menu111
Name of Menu |
|
|
Selection 1 | {exec ... } {}
Selection 2 | {exec ... } {}
Selection 3 | {exec ... } {}
| {:af1} {macro menu111}
The upper line with "menu111" will be the top line of the screen.
Pressing Alt-F1 will bring up the menu with the Selector Bar on
Selection 1.
Remember that the function itself will be found in the search since
it contains the string.
{COMMO} (tm) Macro Programming Guide page 35
MARK
----
Default key: none
Description: Mark Dialing Directory entries for dialing.
Example:
{mark joes-bbs,file-city} Mark entries for dialing.
Dialing Strings may be separated by spaces or commas.
{COMMO} will search the Dialing Directory for each string and mark
the first entry where a match is found. Case is ignored.
The strings may consist of any part of a Dialing Directory entry
line (including passwords). However the following characters may
not appear in a macro Dialing String: space, comma, left or right
curly brace.
See also: DIAL, UNMArk.
NOOP
----
Default key: none
Description: No-op function, does nothing
Example:
{noop} No arguments.
PARMs
-----
Default key: Alt-P
Description: Set Current Terminal Parameters
General form:
{PARMs speed,format,comport,terminal-type,delay}
speed The bps rate: 2400, 9600, etc.
format The data format: 8n1, 7e1, etc.
comport The serial port number: 1, 2, 3 or 4.
terminal The terminal-type: A, V or T.
delay The inter-character delay factor: 0-999.
Examples:
{parms 2400,8,1,,20} Set 2400 bps, 8n1, Com1, delay = 20.
{COMMO} (tm) Macro Programming Guide page 36
{parms ,,4,V} Set Com4 VT102.
{parms 19200,7o1} Set 19200 bps, 7o1.
Note that omitted parameters are not changed.
See also DPARms.
PASSword
--------
Default key: Alt-W
Description: Send current password.
Example:
{password} No arguments.
The current password is obtained from the Dialing Directory entry
whenever a number is dialed. If no password is specified no
characters will be sent.
PAUSe
-----
Default key: none
Description: Pause for up to 999 seconds.
Example:
{pause 25} Pause for 25 seconds.
NOTE: Incoming characters displayed during a PAUSe function are not
seen by subsequent GOLOok/LOOKfor functions.
POPStack
--------
Default key: none
Description: Pop an element from the macro stack.
Switches:
C1 or C Clear all elements from the stack.
C0 Pop the top element (default).
Example:
{pops} Pop the top element.
{pops-c} Clear the stack.
{COMMO} (tm) Macro Programming Guide page 37
POPStack throws away the top element on the macro stack. This
element would have been used by the next RETUrn function.
See PUSHstack for a more complete description of the use of this
function.
See also CALL, RETUrn, GOLOok, LOOKfor.
PRINtlog
--------
Default key: Alt-2
Description: Set Print Log toggle.
Examples:
{print} Toggle Print Log on/off.
{print y} Turn on Print Log.
{print n} Turn off Print Log.
PUSHstack
---------
Default key: none
Description: Push a return point onto the macro stack.
Examples:
{push} Push the current location.
{push abc} Push the location "abc".
When there are no arguments, the location pushed is the location of
the PUSHstack function itself (i.e., it will be executed again when
a RETUrn is encountered).
Explanation: Whenever a CALL is executed, the location of the
function following the CALL (the "return point") is "pushed" onto
the macro stack. When a subsequent RETUrn is executed, the location
at the top of the stack is "popped" and control is transferred to
that location. This allows "nesting" of CALLs and RETUrns.
PUSHstack will push a return point onto the macro stack without
transferring control to the location (control continues in
sequence). A subsequent RETUrn will transfer control to the
location that was pushed.
POPStack will remove the top stack element without transferring
control to it (control continues in sequence).
{COMMO} (tm) Macro Programming Guide page 38
These functions may be used to set a return point for GOLOok/LOOKfor
functions, so that the same GOLOok routines may be used in more than
one macro. They also help to create macros with improved structure.
Here is a sample construct using PUSHstack and POPStack:
{:mmm} {call ggg} ...
...
{:ggg} ...
{pushstack}
{golook aaa,string1}
{golook bbb,string2}
{golook ccc,string3}
{lookfor string4} {send answer4}
{popstack} {return}
{:aaa} {send answer1} {return}
{:bbb} {send answer2} {return}
{:ccc} {send answer3} {return}
If strings 1,2 or 3 come in, responses will be sent and control will
RETUrn to the PUSHstack (and execute it again). If string 4 comes
in the element pushed will be discarded by the POPStack and control
will return following the {call ggg}.
See also CALL, RETUrn, GOLOok, LOOKfor.
RCLOse
------
Default key: none
Description: Close the read file.
Example:
{rclose} No arguments.
IMPORTANT! The read file will be closed automatically in the
following situations:
1) When an attempt is made to read past the end of the file.
2) When the macro terminates (STOP, EXIT, etc.).
A macro error will result if you try to close and no file is open.
See also ROPEn, READ.
READ
----
Default key: none
Description: Read a line from the read file to a variable.
{COMMO} (tm) Macro Programming Guide page 39
Example:
{read nextline} Read the next line in the file into the
variable "nextline."
TIPS on reading files:
> Each READ will get another line until the end of the file is
encountered, at which time control will GOTO the label specified
when the file was opened. If no label was specified (or the
label is invalid) control continues in sequence. In either case
the file will be closed.
> ALL control characters (below ASCII 28) will be discarded,
including the carriage return/linefeed that terminates the line.
> A file must be open for reading or a macro error will result.
See also ROPEn, RCLOse
RETUrn
------
Default key: none
Description: Return from a CALLed macro.
Example:
{return} No arguments.
This function will return control to a location determined by the
last CALL or PUSHstack function. See PUSHstack for a more complete
description of the use of CALL/RETUrn.
NOTE: If a RETUrn is encountered and no CALL or PUSHstack has been
executed, a STOP will occur. This is useful in macros that are
CALLed and are also used standalone (such as protocol file transfer
macros).
See also CALL, PUSHstack, POPStack.
ROPEn
-----
Default key: none
Description: Open a file for reading.
General Form:
{ROPEn name,label}
{COMMO} (tm) Macro Programming Guide page 40
name The name of a string variable.
label A label to GOTO when a READ is attempted at the
end of the file.
Example:
{ropen c:\bbs\file.txt,nomore} Open the file and set the
label "nomore" to GOTO when
the end of the file is
reached.
TIPS on using ROPEn:
> Only one file may be opened for reading (and one for writing).
> The file will be automatically closed when the end of the file is
encountered during a READ (whether or not a label is specified).
An RCLOse is not needed in this situation and will cause a macro
error.
See also READ, RCLOse.
RXMOdem
-------
Default key: none
Description: Receive a file using Xmodem.
Switches:
C1 or C Use CRC error correction (default).
C0 Use Checksum error correction.
D1 or D Cancel transfer if carrier detect is lost
(default).
D0 Ignore state of carrier detect.
A1 or A Sound the alarm at end of transfer.
A0 Do not sound the alarm (default).
W Wait for a keypress at end of transfer.
Wn Wait for "n" seconds, "n" may range from 0 to 999.
Press a key to cancel the wait.
Note: Default (no "W" switch) is no wait.
Example:
{rxmo-a c:\dl\file.zip} Receive "file.zip", sound the
alarm.
TIPS on using RXMOdem:
{COMMO} (tm) Macro Programming Guide page 41
> IMPORTANT! If the file already exists it will be overwritten
without warning. The IFEXist function may be used to prevent
this if desired.
> Block size is established by the sender and may be changed on a
block-by-block basis.
> The transfer will be cancelled after 10 consecutive errors, if
the sender cancels or if you press Esc.
> The Exit Code (test with IFER) will be set at the end of the
transfer. The Exit Code will also be stored in the variable
"_err". 0 means success, 1 means failure.
> If the Usage Log is enabled, an entry will be made at the end of
each transfer.
See also SXMOdem.
SCREen
------
Default key: Alt-I
Description: Screen Image Save.
Examples:
{screen} Open Screen Image Save window.
{screen y} Append screen image to current file.
{screen y,commo.scr} Append screen image to indicated file.
(and change current pathname).
{screen n,c:\file.xyz} Change current screen image pathname
(don't save screen to file).
SCROllback
----------
Default key: Alt-K
Description: Display Scrollback Buffer
Example:
{scroll} No arguments.
SEND
----
Default key: none
Description: Send a string to the modem (serial port).
Examples:
{COMMO} (tm) Macro Programming Guide page 42
{send Fred|~~Brucker|~~%_pass%|}
Send my first and last name with carriage
returns and 1 second delays, then send the
current password and a <cr>.
{send ^[^[} Send two <esc> characters.
{send } Send a space (there must be two spaces, the
first is the separator).
{send %line} Send the string in the variable "line".
NOTE: See Appendix D "ASCII Character Representation" for
information on how to represent any character in a SEND function.
SETEsc
------
Default key: none
Description: Define a label to GOTO when Esc is pressed.
General form:
{setesc label}
label A label to GOTO when the user presses Esc during
macro execution.
Switches:
P1 or P The user will be prompted with, "A macro is
running. Terminate it?." If the user answers
"no," macro processing will continue as if nothing
had happened. If "yes," processing will GOTO the
label. If the label does not exist, a STOP will
be executed. P1 is the default.
P0 The user will not be prompted. Processing will
GOTO the label if it exists, else a STOP will be
executed.
Examples:
{setesc finish} GOTO label, with prompt.
{sete-p0 done} GOTO label, without prompt.
{setesc} Reset to no label (STOP on Esc).
{COMMO} (tm) Macro Programming Guide page 43
This function is used to "capture" the Esc key during macro
execution, especially when a MACLoad is used to load a new Macro
File. It will help prevent accidental macro terminations.
The macro at the label would typically reload COMMO.MAC, thus
restoring the user's familiar environment.
NOTE: In the various command windows, Esc is normally used to exit
the window. Use Ctrl-Break to bring up the prompt.
SETGet
-------
Default key: none
Description: Set parameters for GETString functions.
General form:
{SETGet seconds,label,y/n/l,string}
seconds GETString timeout. If a character is not entered
in the specified amount of time, the macro in the
second argument will be started. May be 0 to 999.
Default is 0 (disabled).
label Timeout macro. Macro to GOTO if the time in the
first argument expires. If no macro is specified
or if the macro label is invalid, control will
pass to the function following the GETString.
Default is no macro.
Note that if the timer expires no variable
assignment will be made. Any previous assignment
will be unaltered.
y/n/l Echo Status. If this is "yes", characters entered
at the local or remote terminals will be echoed
back to the remote and displayed locally. This is
the default.
If "no", characters will not be echoed to either
location.
If "local", characters will be displayed locally,
but not echoed to the remote. This should be used
when the remote is a host system.
IMPORTANT! This setting is independent of Local
Echo. Turn on Local Echo if necessary for local
display of data sent with SEND, ASCIiup, etc.
{COMMO} (tm) Macro Programming Guide page 44
string Terminator response. This string will be sent
and/or displayed locally (in accord with the Echo
Status) when a carriage return is received (input
terminated). This is typically a carriage
return/linefeed. May be up to 32 characters.
Default is no string.
Example:
{setg 120,noget,y,^m^j} Set GETString parameters.
The SETGet function will set parameters for all subsequent GETString
functions. It may be executed at any time to modify the parameters.
When macro processing terminates, the parameters will be reset to
the default values.
Default arguments are: GETString timeout 0 (disabled)
Timeout macro none
Echo status y (echo on)
Terminator response none
IMPORTANT! Null arguments in the SETGet function will be set to
these defaults.
See also: GETString.
SETLook
-------
Default key: none
Description: Set parameters for LOOKfor functions.
General form:
{SETLook seconds,label,seconds,string}
seconds LOOKfor timeout. Maximum time in seconds to look
for a string. If the string is not found in the
allotted time, the macro in the second argument
will be started. May be 0 to 999. Default is 0
(disabled).
label Timeout macro. Macro to GOTO if the time in the
first argument expires. If no macro is specified
or if the macro label is invalid, control will
pass to the function following the LOOKfor.
seconds Prompt timeout. During a LOOKfor function
unwanted prompts may appear like "Press any key"
or "More [Y/n]", etc. This argument is the time
{COMMO} (tm) Macro Programming Guide page 45
in seconds to wait at a prompt (no input from the
modem) before sending the string in the fourth
argument. Usually you would send "|" or "n|".
When the response string is sent the timer is
restarted, allowing any number of prompts to be
satisfied (until the LOOKfor itself is satisfied
or times out).
The timer will also be restarted if any keys are
typed while waiting. This allows a manual
response to a prompt which the macro does not
handle.
IMPORTANT! The prompt timeout should be long
enough (or disabled entirely) to prevent the
response from being sent when there is a long
delay without a prompt. This might occur right
after connection while the BBS software is loading
or when a "door" program is loading.
Failure to heed this warning will result in "n"
responses to "First name?" and other undesirable
effects.
May be 0 to 999. Default is 0 (disabled).
string Prompt response. String to send when the time in
the third argument runs out. May be up to 32
characters. Default is no string.
Example:
{setl 60,abc,4,n|} Set LOOKfor parameters
The SETLook function will set parameters for all subsequent LOOKfor
functions. It may be executed at any time to modify the parameters.
When macro processing terminates, the parameters will be reset to
the default values.
Default arguments are: LOOKfor timeout 0 (disabled)
Timeout macro none
Prompt timeout 0 (disabled)
Prompt response none
IMPORTANT! Null arguments in the SETLook function will revert to
these defaults.
See also: LOOKfor, GOLOok.
{COMMO} (tm) Macro Programming Guide page 46
SETVariable
-----------
Default key: none
Description: Assign a string to a variable name.
General form:
{SETVariable name,string}
name The name of the variable to which the string will
be assigned.
string The string may be the name of another {COMMO}
variable or an environment variable. In these
cases further expansion is controlled by switches
(see below).
Switches:
E1 or E This switch indicates that the second argument is
a DOS environment variable. If it is not found in
the environment, the {COMMO} variable will be set
to NULL.
Note that environment variable names are CASE
SENSITIVE (they are usually upper case).
E0 Normal variable (default).
S1 or S This switch will cause "double expansion" of the
second argument (indirect variable). First
{COMMO} will substitute any variables indicated by
"%" signs. The resulting string (which must NOT
begin with a "%") will then be treated as a
variable name and expanded again.
This facility may be used to create a "subscript."
S0 Single expansion (default).
Examples:
{setv net,nodeid} Assign the string "nodeid" to the
variable name "net".
{setv nodeid,dirasnt} Assign the string "dirasnt" to the
variable name "nodeid".
{setv-s bbs,nodeid} Assuming the above examples have
been executed, this will set the
variable "bbs" to "dirasnt".
{COMMO} (tm) Macro Programming Guide page 47
{setv-s board,%net} Assuming the above examples have
been executed, this will set the
variable "board" to "dirasnt".
{setv-s xxx,yyy%index} Suppose the variable "index" has
the value "3". It will be expanded
first, then "yyy3" will be expanded
and its value assigned to "xxx".
{setv-e abc,TABLE} Assuming a "SET TABLE=" DOS command
has been executed prior to running
{COMMO}, the variable "abc" will be
set to the environment string.
{setv abc} or {setv abc,} Set the variable "abc" to null (it
will be deleted from variable
space).
SHELl
-----
Default key: Alt-S
Description: Shell to DOS.
Example:
{shell} No arguments.
SFLOw
-----
Default key: none
Description: Set Software Flow Control toggle.
Examples:
{sflow} Toggle Software Flow Control on/off.
{sflow y} Turn on Software Flow Control.
{sflow n} Turn off Software Flow Control.
SOUNd
-----
Default key: none
Description: Set Master Sound toggle.
Examples:
{sound} Toggle Master Sound on/off.
{sound y} Turn on Master Sound.
{sound n} Turn off Master Sound.
{COMMO} (tm) Macro Programming Guide page 48
SPOCtrl
-------
Default key: none
Description: Serial port output control.
Examples:
{spoc y} Serial port output is ON.
{spoc n} Serial port output is OFF.
This function will inhibit any data from being sent to the serial
port. All other program operations will be normal. It is used for
"local mode" in host macros (no data is sent to the modem).
Serial port output will always be restored to ON at macro
termination.
STATusline
----------
Default key: none
Description: Set Status Line toggle.
IMPORTANT! The Status Line is {COMMO}'s instrument panel. You
should not turn it off until you are familiar with operating the
program.
Examples:
{statusline} Toggle Status Line on/off.
{status y} Turn on Status Line.
{status n} Turn off Status Line.
When the Status Line is off (not visible), the bottom line of the
display becomes part of the Terminal Screen.
The STATusline function is ignored while in Chat Mode.
STOP
----
Default key: none
Description: Halt macro execution.
Examples:
{stop} No arguments.
{} Short form.
{COMMO} (tm) Macro Programming Guide page 49
STOP always returns {COMMO} to manual operation in the Terminal
Screen. It should be used to end login macros.
SUBString
---------
Default key: none
Description: Move a substring to a variable.
General form:
{SUBString name,start,count,string}
name The name of the variable to which the substring
will be assigned.
start The starting character number (first character is
"1"). If it is negative, {COMMO} will count in
from the end of the string.
If it is too large and positive, the substring
will be null.
If it is too large and negative, the substring
will start at the beginning of the string.
count The number of characters to use. If the number is
too large, {COMMO} will use as many as possible.
If the count is 0, the substring will be null.
string The string to use.
Examples:
{subs var-sub,2,4,abcdefgh} Set "var-sub" to "bcde".
{subs newvar,-5,20,abcdefgh} Set "newvar" to "defgh".
SXMOdem
-------
Default key: none
Description: Send a file using Xmodem.
Switches:
K1 or K Use 1024 byte block size (Xmodem-1k).
K0 Use 128 byte block size (default).
D1 or D Cancel transfer if carrier detect is lost
(default).
D0 Ignore state of carrier detect.
A1 or A Sound the alarm at end of transfer.
A0 Do not sound the alarm (default).
{COMMO} (tm) Macro Programming Guide page 50
W Wait for a keypress at end of transfer.
Wn Wait for "n" seconds, "n" may range from 0 to 999.
Press a key to cancel the wait.
Note: Default (no "W" switch) is no wait.
Example:
{sxmo-ka c:\ul\file.zip} Send "file.zip" using 1024
byte block size, sound the
alarm.
TIPS on using SXMOdem:
> The transfer will be cancelled after 10 consecutive errors, if
the receiver cancels or if you press Esc.
> CRC vs. Checksum mode is established by the receiver.
> The Exit Code (test with IFER) will be set at the end of the
transfer. The Exit Code will also be stored in the variable
"_err". 0 means success, 1 means failure.
> If the Usage Log is enabled, an entry will be made at the end of
each transfer.
See also RXMOdem.
TOGGles
-------
Default key: Alt-T
Description: Set various toggle parameters.
Example:
{toggles} Open Set Toggles window.
UNMArk
------
Default key: none
Description: Unmark Dialing Directory entries.
Example:
{unmark joes-bbs,file-city} Unmark listed entries.
{unmark} Unmark all entries.
See the description of the MARK function for the rules on writing
macro Dialing Strings.
See also: DIAL, MARK.
{COMMO} (tm) Macro Programming Guide page 51
VTCUr
-----
Default key: none
Description: Define a VT102 cursor (arrow) key.
Example:
{vtcur ^[[A|^[OA} Define up-arrow key strings.
The first string is sent when cursor mode is active; the second
string is sent when application mode is active (these modes are
controlled by the host).
The two strings must be separated by a "|". Use "^m" for carriage
return if necessary.
See also VTPAd.
VTPAd
-----
Default key: none
Description: Define a VT102 keypad key.
Example:
{vtpad 5|^[Ou} Define keypad "5" key strings.
The first string is sent when numeric mode is active; the second
string is sent when application mode is active (these modes are
controlled by the host).
The two strings must be separated by a "|". Use "^m" for carriage
return if necessary.
See also VTCUr.
WCLOse
------
Default key: none
Description: Close the write file.
Example:
{wclose} No arguments.
IMPORTANT! A macro error will result if you try to close and no
file is open.
{COMMO} (tm) Macro Programming Guide page 52
See also WOPEn, WRITE.
WOPEn
-----
Default key: none
Description: Open a file for writing.
Switches:
A1 or A Open the file in "append" mode. New lines written
to the file will be added at the end. If the file
doesn't exist, it will be created.
A0 Open the file in "create" mode. If the file
exists, it will be erased (default).
Examples:
{wopen c:\bbs\file.txt} Open the file in create mode.
{wopen-a c:\data\word.fil} Open the file in append mode.
TIP on using WOPEn:
> Only one file may be opened for writing (and one for reading).
See also WRITe, WCLOse.
WRITE
-----
Default key: none
Description: Write a string to the write file.
Examples:
{write %nextline} Write the contents of the variable
"nextline" to the write file.
{write} Write a carriage return/linefeed only
(blank line) to the file.
{write %num%> } Write the contents of "num" followed by
a ">" and a space.
TIPS on writing to files:
> A file must be open for writing or a macro error will result.
> The string will be written as one line, terminated by a carriage
return/linefeed.
{COMMO} (tm) Macro Programming Guide page 53
> Control character translation is not performed on the write
string.
> A macro error will result if the disk is full.
See also WOPEn, WCLOse
========================================
Appendix A Table of {COMMO} Key-labels
========================================
Key-labels are also macro labels with the added advantage that the
macro can be started by pressing the associated key from the
Terminal Screen. Most "extended" keys may be assigned this way. If
the same key-label appears more than once, the first occurrence will
be used. Note that key-labels are case insensitive. The caret (^)
indicates the Ctrl key.
Enhanced keyboard key-labels are listed below.
Key Name Key-label Key Name Key-label
________ _________ ________ _________
Normal-F1 nf1 ... Normal-F10 nf0
Ctrl-F1 cf1 ... Ctrl-F10 cf0
Shift-F1 sf1 ... Shift-F10 sf0
Alt-F1 af1 ... Alt-F10 af0
Alt-A ala ... Alt-Z alz
Alt-1 al1 ... Alt-0 al0
Alt = al= Alt - al-
Escape esc Grey * gr*
Grey - gr- Grey + gr+
Backspace bsp ^Backspace cbs
Tab tab Shift-tab stb
Enter ent ^Enter cen
Home hom End end
PgUp pgu PgDn pgd
Up-Arrow upa Down-Arrow dna
Left-Arrow lfa Right-Arrow rta
Insert ins Delete del
^Home chm ^End cnd
^PgUp cpu ^PgDn cpd
^Right-Arrow cra ^Left-Arrow cla
{COMMO} (tm) Macro Programming Guide page 54
Keypad-0 kp0 ... Keypad-9 kp9
Keypad-. kp. ^PrtSc cpr
Enhanced Keyboard Key-labels
============================
IMPORTANT! To use the following keys you must tell {COMMO} to test
for the enhanced keyboard. The item {tek=yes} must appear in your
Setup File.
Normal-F11 nfa Normal-F12 nfb
Ctrl-F11 cfa Ctrl-F12 cfb
Shift-F11 sfa Shift-F12 sfb
Alt-F11 afa Alt-F12 afb
Alt-[ al[ Alt-] al]
Alt-; al; Alt-' al'
Alt-, al< Alt-. al.
Alt-/ al/ Alt-\ al\
Alt-* al* Alt-` al`
Center Key cky
The Center Key is the Keypad 5 with Numlock off.
The keys in the second group may also work with the 83-key keyboard
if your BIOS supports the enhanced keyboard.
============================================
Appendix B Macro Functions Listed by Class
============================================
Variable manipulation
---------------------
SETVariable Assign a string to a variable name
INCRement Increment a numeric variable
DECRement Decrement a numeric variable
INSTring Find a string within a string
SUBString Move a substring to a variable
LENGth Determine the length of a string
Looking for text
----------------
AUTO Auto Receive
SETLook Set LOOKfor parameters
GOLOok Additional string to look for
LOOKfor Look for string from port
{COMMO} (tm) Macro Programming Guide page 55
File Input/Output
-----------------
ROPEn Open a file for reading
READ Read from a file to a variable
RCLOse Close the read file
WOPEn Open a file for writing
WRITe Write to a file from a variable
WCLOse Close the write file
Dialing/connect/disconnect
--------------------------
ABAUd AutoBaud toggle
DIAL Dialing Directory
DPARms Set dialing default parameters
HANGup Drop DTR to hangup
MARK Mark numbers for dialing
UNMArk Unmark Dialing Directory entries
Modem control
-------------
PARMs Set current terminal parameters
LOCAlecho Local Echo toggle
INITmodem Send modem init string
HFLOW Hardware flow control
SFLOw Software flow control
BREAk Send Break
LIGHts Signal Lights toggle
SPOCtrl Serial port output control
Send/receive data
-----------------
ASCIiup ASCII Upload
SEND Send a text string
CAPMode Set Capture Mode
CAPTure Capture File Options
SETGet Set GETString parameters
GETString Get a string from the modem
RXMOdem Receive a file using Xmodem
SXMOdem Send a file using Xmodem
PASSword Send current password
VTCUr VT102 cursor key strings
VTPAd VT102 keypad key strings
Testing
-------
COMPare Compare a variable to a string
IFCOndition Test conditions set by COMPare
{COMMO} (tm) Macro Programming Guide page 56
IFERrorlevel Test if Exit Code number
IFEXist Test for existence of file(s)
IFCArrier Test for presence of carrier detect
Macro control
-------------
CALL Execute a macro
RETUrn Return from a CALL
PUSHstack Push a location to the macro stack
POPStack Pop from the macro stack
GOTO Transfer control to a label
STOP Stop macro processing
MACLoad Load a new Macro File
PAUSe Pause for interval 1-999 second
HOLD Hold until specified 24 hr time
SETEsc Set a label to GOTO on Esc
Video/sound related
-------------------
CLEAr Clear Screen
CURSor Terminal Screen cursor toggle
DISPlay Display a string to the screen
SCREen Screen Image Save
STATusline Status Line on/off toggle
SOUNd Master Sound toggle
ALARm Ring the alarm
BEEP Sound a beep
Miscellaneous
-------------
CHATmode Chat Mode toggle
DOORway Doorway Mode toggle
ELAPse Reset the elapsed timer
EDIT Edit a file
EXECute Execute a DOS command
EXIT Exit {COMMO}
HELP Online Help topic
INPUt Input from the keyboard
MACRo Macro Processor window
NOOP No-op function, does nothing
PRINtlog Print Log toggle
SCROllback Display Scrollback Buffer
SHELl Shell to DOS
TOGGles Set Toggles
- end -